5ca99a544e95144c590aed9037220ccbd6056b05,drools-core/src/main/java/org/drools/marshalling/OutputMarshaller.java,OutputMarshaller,writeNodeInstance,#MarshallerWriteContext#NodeInstance#,660

Before Change


            	compositeNodeInstance.getContextInstance( VariableScope.VARIABLE_SCOPE );
            Map<String, Object> variables = variableScopeInstance.getVariables();
            stream.writeInt( variables.size() );
            for ( Map.Entry<String, Object> entry : variables.entrySet() ) {
                stream.writeUTF( entry.getKey() );
                stream.writeObject( entry.getValue() );
            }
            for ( NodeInstance subNodeInstance : compositeNodeInstance.getNodeInstances() ) {
                stream.writeShort( PersisterEnums.NODE_INSTANCE );
                writeNodeInstance( context, subNodeInstance );
            }

After Change


            	(CompositeContextNodeInstance) nodeInstance;
            VariableScopeInstance variableScopeInstance = (VariableScopeInstance)
            	compositeNodeInstance.getContextInstance( VariableScope.VARIABLE_SCOPE );
            Map<String, Object> variables = variableScopeInstance.getVariables();
            List<String> keys = new ArrayList<String>(variables.keySet());
            Collections.sort(keys, new Comparator<String>() {
    			public int compare(String o1, String o2) {
    				return o1.compareTo(o2);
    			}
            });
            stream.writeInt( keys.size() );
            for ( String key : keys ) {
                stream.writeUTF( key );
                stream.writeObject( variables.get(key) );
            }
            List<NodeInstance> nodeInstances = new ArrayList<NodeInstance>(compositeNodeInstance.getNodeInstances());
            Collections.sort(nodeInstances, new Comparator<NodeInstance>() {
    			public int compare(NodeInstance o1, NodeInstance o2) {
    				return (int) (o1.getId() - o2.getId());
    			}
            });
            for ( NodeInstance subNodeInstance : nodeInstances ) {
                stream.writeShort( PersisterEnums.NODE_INSTANCE );
                writeNodeInstance( context, subNodeInstance );